//Header File for the Groovey Renderer List container

#ifndef G_R_LIST
#define G_R_LIST

#include <list>
#include <boost/thread.hpp>
#include "grenderer.hpp"
#include <GL/glut.h>

class GRenderer_List{
    public:
    	GRenderer_List();
    	
    	///pre conditions are trivial
    	
    	int addRenderer(GRenderer& Rend);		///result: append a renderer to the list of renderers, return index
    	int getState(const int Rend_dex);		///result: get the state of a renderer at the given list index
    	GRenderer& operator[](const int Index);	///result: gives a reference to a Renderer from the render set
    	void render(GParticle_List& GPList);
    	
    //////
	//////Privates:
	//////
    private:
    	std::list<GRenderer> render_set;
};


#endif
